﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;


namespace Entidades.Sistema
{
    public class Pedido
    {
        private int _cod_pedido;
        private String _estado;//cambiar el string por un enum
        private DateTime _fecha_despacho;
        private DateTime _fecha_entrega_pactada;
        private DateTime _fecha_pedido;
        private DateTime _fecha_real_entrega;
        private List<DetallePedido> CollDetellePedido;


        public ReadOnlyCollection<DetallePedido> DetallePedidos
        {
            get { return CollDetellePedido.AsReadOnly(); }

        }
        public void AgregarDetalle(Entidades.Sistema.DetallePedido detped)
        {
            CollDetellePedido.Add(detped);
        }

        public void EliminarDetalle(Entidades.Sistema.DetallePedido detped)
        {
            CollDetellePedido.RemoveAll(x => x.producto.cod_producto == detped.producto.cod_producto);
        }

        public Pedido()
        {
            CollDetellePedido = new List<Entidades.Sistema.DetallePedido>();
        }

        /*public virtual string Cantidad
        {
            get { return this.producto == null ? "" : this.producto.nombre; }
        }*/

        /*public virtual string Cantidad
        {
            get { CollDetellePedido.First(det => det.cantidad); }
        }*/

        public int cod_pedido
        {
            get { return _cod_pedido; }
            set { _cod_pedido = value; }
        }
        public String estado
        {
            get { return _estado; }
            set { _estado = value; }
        }
        //Comentado para que no salga en la grilla momentaneamente
        /*public DateTime fecha_despacho
        {
            get { return _fecha_despacho; }
            set { _fecha_despacho = value; }
        }*/
        public DateTime fecha_entrega_pactada
        {
            get { return _fecha_entrega_pactada; }
            set { _fecha_entrega_pactada = value; }
        }
        //Comentado para que no salga en la grilla momentaneamente
        /*
        public DateTime fecha_pedido
        {
            get { return _fecha_pedido; }
            set { _fecha_pedido = value; }
        }
        public DateTime fecha_real_entrega
        {
            get { return _fecha_real_entrega; }
            set { _fecha_real_entrega = value; }
        }*/
    }
}
